'\" t
.\"     Title: ll2_read_all
.\"    Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.20
.\"      Date: 2025-01-13
.\"    Manual: Programmer's Manual
.\"    Source: util-linux 2.40.4
.\"  Language: English
.\"
.TH "LL2_READ_ALL" "3" "2025-01-13" "util\-linux 2.40.4" "Programmer\*(Aqs Manual"
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
.  mso www.tmac
.  am URL
.    ad l
.  .
.  am MTO
.    ad l
.  .
.  LINKSTYLE blue R < >
.\}
.SH "NAME"
ll2_read_all \- Reads all entries from database and calls the callback function for each entry.
.SH "SYNOPSIS"
.sp
\fB#include <lastlog2.h>\fP
\fBint ll2_read_all (struct ll2_context *\fIcontext\fP,
int (*\fIcallback\fP)(const char *\fIuser\fP, int64_t \fIll_time\fP,
const char *\fItty\fP, const char *\fIrhost\fP,
const char *\fIpam_service\fP, const char *\fIcb_error\fP),
char **\fIerror\fP);\fP
.SH "DESCRIPTION"
.sp
Reads all entries from database, defined in \fIcontext\fP, and calls callback fuction \fIcallback\fP for each entry.
If \fIcontext\fP is NULL, the default database, defined in \fILL2_DEFAULT_DATABASE\fP, will be taken.
.sp
.if n .RS 4
.nf
.fam C
char  *error = NULL;
const char *user = "root";

static int
callback (const char *res_user, int64_t ll_time, const char *res_tty,
          const char *res_rhost, const char *res_service, const char *cb_error)
{
   /* returning != 0 if no further entry has to be handled by the callback */
   return 0;
}

int ret = ll2_read_all (NULL, callback, &error);
.fam
.fi
.if n .RE
.SH "RETURN VALUE"
.sp
Returns 0 on success, \-ENOMEM or \-1 on other failure.
\fIerror\fP contains an error string if the return value is \-1.
\fIerror\fP is not guaranteed to contain an error string, could also be NULL.
\fIerror\fP should be freed by the caller.
If lastlog2 database does not exist at all, the errno ENOENT has been set
and can be checked.
.SH "AUTHORS"
.sp
Thorsten Kukuk (\c
.MTO "kukuk\(atsuse.de" "" ")"
.SH "SEE ALSO"
.sp
\fBlastlog2\fP(3),
\fBll2_new_context(3),
*ll2_unref_context(3),
*ll2_write_entry\fP(3),
\fBll2_read_entry\fP(3),
\fBll2_update_login_time\fP(3),
\fBll2_remove_entry\fP(3),
\fBll2_rename_user\fP(3),
\fBll2_import_lastlog\fP(3)
.SH "REPORTING BUGS"
.sp
For bug reports, use the issue tracker at \c
.URL "https://github.com/util\-linux/util\-linux/issues" "" "."
.SH "AVAILABILITY"
.sp
The \fBliblastlog2\fP library is part of the util\-linux package since version 2.40. It can be downloaded from \c
.URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."